1
Kehidupan Objek Lokal: Otomatis vs. Statis
AI037Lesson 10
00:00

Di dunia C++, setiap objek memiliki masa hidup— masa hidup objek. Ini menentukan durasi suatu objek menempati ruang dalam memori. Dalam sebuah badan fungsi, perilaku bawaan untuk variabel lokal adalah menjadi otomatis, tetapi kita dapat memerintahkan mereka menjadi statis untuk mengubah takdir mereka.

1. Objek Otomatis

Secara bawaan, variabel lokal adalah objek otomatis. Mereka lahir (diinisialisasi) saat fungsi eksekusi mencapai definisi mereka dan mati (dikembalikan) saat blok selesai. Mereka berada di tumpukan, membuatnya segar untuk setiap panggilan.

2. Objek Statis Lokal

Ketika Anda menggunakan statis kata kunci, Anda menciptakan sebuah objek statis lokal. Ini hanya diinisialisasi sekali—sebelum kali pertama kontrol melewati definisi mereka—dan tetap hidup hingga program berakhir. Hal ini memungkinkan fungsi untuk "mengingat" keadaan tanpa mencemari lingkup global.

Tumpukan (Otomatis)[ temp_val ]Dihancurkan pada akhir blokSegment Data (Statis)[ persistent_val ]Hidup hingga keluar dari program

3. Perangkap Rekursi

Dalam sebuah fungsi rekursif, setiap putaran rekursi menciptakan instans unik dari objek otomatisnya. Jika rekursi sangat dalam, ini akan menghabiskan ruang tumpukan yang signifikan. Sebaliknya, sebuah statis objek dibagi bersama di setiap tingkat rekursi tersebut.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>